home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / warpup1.lha / WarpUP-WarpOS / Source / tools / showinfo.p < prev    next >
Text File  |  1998-03-01  |  5KB  |  187 lines

  1.         incdir  include:
  2.         incdir  lvo:
  3.  
  4.         include powerpc/ppcmacros.i
  5.         include powerpc/powerpc.i
  6.  
  7.         include powerpc_lib.i
  8.         include exec_lib.i
  9.         include dos_lib.i
  10.  
  11.         STRUCTURE       POWERINFO,0
  12.         APTR            POWERINFO_CPU
  13.         ULONG           POWERINFO_PVR
  14.         ULONG           POWERINFO_CPUCLOCK_U
  15.         ULONG           POWERINFO_CPUCLOCK_L
  16.         ULONG           POWERINFO_BUSCLOCK_U
  17.         ULONG           POWERINFO_BUSCLOCK_L
  18.         APTR            POWERINFO_ICACHE
  19.         APTR            POWERINFO_DCACHE
  20.         APTR            POWERINFO_TABLE
  21.         ULONG           POWERINFO_TABLESIZE
  22.         ULONG           POWERINFO_TBU
  23.         ULONG           POWERINFO_TBL
  24.         ULONG           POWERINFO_CPULOAD_U
  25.         ULONG           POWERINFO_CPULOAD_L
  26.         ULONG           POWERINFO_SYSTEMLOAD_U
  27.         ULONG           POWERINFO_SYSTEMLOAD_L
  28.         LABEL           POWERINFO_SIZE
  29.  
  30.  
  31.         xref    _SysBase
  32.         xref    _DOSBase
  33.         xref    _PowerPCBase
  34.         xref    _LinkerDB
  35.         smalldata
  36.         executable
  37.         escapestr
  38.         vea
  39.         version 14
  40.  
  41. start
  42.         prolog  1024
  43.         pushgpr r29-r31
  44.         lnk     r29,-POWERINFO_SIZE
  45.         subi    r29,r29,POWERINFO_SIZE
  46.         la      r4,PPCInfo_Tags
  47.         CALLPOWERPC     GetInfo
  48.         lw      r6,Tag_PVR
  49.         stw     r6,POWERINFO_PVR(r29)
  50.         lw      r6,Tag_CPU
  51.         la      r3,CPU_603
  52.         bittst  r6,CPUP_603
  53.         bne     .found
  54.         la      r3,CPU_604
  55.         bittst  r6,CPUP_604
  56.         bne     .found
  57.         la      r3,CPU_603E
  58.         bittst  r6,CPUP_603E
  59.         bne     .found
  60.         la      r3,CPU_604E
  61.         bittst  r6,CPUP_604E
  62.         bne     .found
  63.         la      r3,CPU_620
  64.         bittst  r6,CPUP_620
  65.         bne     .found
  66.         la      r3,CPU_Unknown
  67. .found
  68.         stw     r3,POWERINFO_CPU(r29)
  69.         lw      r6,Tag_BUSCLOCK
  70.         liw     r4,1000000
  71.         divwu   r3,r6,r4
  72.         stw     r3,POWERINFO_BUSCLOCK_U(r29)
  73.         mullw   r3,r3,r4
  74.         subf    r3,r3,r6
  75.         stw     r3,POWERINFO_BUSCLOCK_L(r29)
  76.         lw      r6,Tag_CPUCLOCK
  77.         liw     r4,1000000
  78.         divwu   r3,r6,r4
  79.         stw     r3,POWERINFO_CPUCLOCK_U(r29)
  80.         mullw   r3,r3,r4
  81.         subf    r3,r3,r6
  82.         stw     r3,POWERINFO_CPUCLOCK_L(r29)
  83.         lw      r6,Tag_ICACHE
  84.         la      r3,CACHE_OFF_L
  85.         bittst  r6,CACHEP_OFF_LOCKED
  86.         bne     .icachedone
  87.         la      r3,CACHE_OFF_U
  88.         bittst  r6,CACHEP_OFF_UNLOCKED
  89.         bne     .icachedone
  90.         la      r3,CACHE_ON_L
  91.         bittst  r6,CACHEP_ON_LOCKED
  92.         bne     .icachedone
  93.         la      r3,CACHE_ON_U
  94. .icachedone
  95.         stw     r3,POWERINFO_ICACHE(r29)
  96.         lw      r6,Tag_DCACHE
  97.         la      r3,CACHE_OFF_L
  98.         bittst  r6,CACHEP_OFF_LOCKED
  99.         bne     .dcachedone
  100.         la      r3,CACHE_OFF_U
  101.         bittst  r6,CACHEP_OFF_UNLOCKED
  102.         bne     .dcachedone
  103.         la      r3,CACHE_ON_L
  104.         bittst  r6,CACHEP_ON_LOCKED
  105.         bne     .dcachedone
  106.         la      r3,CACHE_ON_U
  107. .dcachedone
  108.         stw     r3,POWERINFO_DCACHE(r29)
  109.         lw      r6,Tag_PAGETABLE
  110.         stw     r6,POWERINFO_TABLE(r29)
  111.         lw      r6,Tag_TABLESIZE
  112.         stw     r6,POWERINFO_TABLESIZE(r29)
  113.         mftbu   r6
  114.         mftbl   r3
  115.         stw     r6,POWERINFO_TBU(r29)
  116.         stw     r3,POWERINFO_TBL(r29)
  117.         lw      r6,Tag_CPULOAD
  118.         li      r4,100
  119.         divwu   r3,r6,r4
  120.         stw     r3,POWERINFO_CPULOAD_U(r29)
  121.         mullw   r3,r3,r4
  122.         subf    r3,r3,r6
  123.         stw     r3,POWERINFO_CPULOAD_L(r29)
  124.         lw      r6,Tag_SYSTEMLOAD
  125.         li      r4,100
  126.         divwu   r3,r6,r4
  127.         stw     r3,POWERINFO_SYSTEMLOAD_U(r29)
  128.         mullw   r3,r3,r4
  129.         subf    r3,r3,r6
  130.         stw     r3,POWERINFO_SYSTEMLOAD_L(r29)
  131.         la      _d1,infotext
  132.         mr      _d2,r29
  133.         RUN68K_XL       _DOSBase,VPrintf
  134.         addi    r29,r29,POWERINFO_SIZE
  135.         ulnk    r29,-POWERINFO_SIZE
  136.         popgpr
  137.         epilog
  138.  
  139.         section data
  140. infotext        dc.b    "CPU:                   %s   (PVR = %08lx)\n"
  141.         dc.b    "CPU clock:             %ld.%06ld MHz\n"
  142.         dc.b    "Bus clock:             %ld.%06ld MHz\n"
  143.         dc.b    "Instruction Cache:     %s\n"
  144.         dc.b    "Data Cache:            %s\n"
  145.         dc.b    "Page table location:   %08lx\n"
  146.         dc.b    "Page table size:       %ld KBytes\n"
  147.         dc.b    "Time base content:     %08lx %08lx\n"
  148.         dc.b    "CPU load:              %ld.%02ld%%\n"
  149.         dc.b    "System load:           %ld.%02ld%%\n"
  150.         dc.b    0
  151.  
  152. CPU_603         dc.b    "PPC 603",0
  153. CPU_603E        dc.b    "PPC 603E",0
  154. CPU_604         dc.b    "PPC 604",0
  155. CPU_604E        dc.b    "PPC 604E",0
  156. CPU_620         dc.b    "PPC 620",0
  157. CPU_Unknown     dc.b    "UNKNOWN",0
  158. CACHE_ON_U      dc.b    "ON and UNLOCKED",0
  159. CACHE_OFF_U     dc.b    "OFF and UNLOCKED",0
  160. CACHE_ON_L      dc.b    "ON and LOCKED",0
  161. CACHE_OFF_L     dc.b    "OFF and LOCKED",0
  162.  
  163.         cnop    0,4
  164. PPCInfo_Tags
  165.         dc.l    PPCINFO_CPU
  166. Tag_CPU         dc.l    0
  167.         dc.l    PPCINFO_PVR
  168. Tag_PVR         dc.l    0
  169.         dc.l    PPCINFO_ICACHE
  170. Tag_ICACHE      dc.l    0
  171.         dc.l    PPCINFO_DCACHE
  172. Tag_DCACHE      dc.l    0
  173.         dc.l    PPCINFO_PAGETABLE
  174. Tag_PAGETABLE   dc.l    0
  175.         dc.l    PPCINFO_TABLESIZE
  176. Tag_TABLESIZE   dc.l    0
  177.         dc.l    PPCINFO_BUSCLOCK
  178. Tag_BUSCLOCK    dc.l    0
  179.         dc.l    PPCINFO_CPUCLOCK
  180. Tag_CPUCLOCK    dc.l    0
  181.         dc.l    PPCINFO_CPULOAD
  182. Tag_CPULOAD     dc.l    0
  183.         dc.l    PPCINFO_SYSTEMLOAD
  184. Tag_SYSTEMLOAD  dc.l    0
  185.         dc.l    0
  186.  
  187.